Many applications and hardware devices collect secure data with an expectation that the secure data will be protected from unauthorized access. Further, many computing architectures require exposing the secure data to large driver stacks under the assumption that the drivers can be trusted. For example, the secure data can be transmitted to any number of drivers that can have full access to the system's memory, and thus access to secure data stored within the system's memory. However, the drivers are susceptible to attacks by compromised and/or malicious system software.